Diversion Derived Type

type, public :: Diversion


Components

Type Visibility Attributes Name Initial
real(kind=float), public :: PinChannel

Input discharge into diversion at time t (m3/s)

real(kind=float), public :: PoutChannel

Output discharge into diversion at time t (m3/s)

real(kind=float), public :: QinChannel

Input discharge into diversion at time t+dt (m3/s)

real(kind=float), public :: Qout

discharge flowing in the natural river downstream diversion (m3/s)

real(kind=float), public :: QoutChannel

Output discharge into diversion at time t+dt (m3/s)

integer(kind=short), public :: c

cell column j

real(kind=float), public :: channelBankSlope

diversion channel section bank slope (deg)

real(kind=float), public :: channelLenght

diversion channel lenght (m)

real(kind=float), public :: channelManning

diversion channel Manning roughness [s m^-1/3]

real(kind=float), public :: channelSlope

diversion channel slope (m/m)

real(kind=float), public :: channelWidth

diversion channel bottom width (m)

integer(kind=short), public :: cout

cell column where off-stream pool outflow is discharged

real(kind=float), public :: eFlow(365)

daily environmental flow [m3/s]

integer(kind=short), public :: fileunitOut

file unit for writing results

integer(kind=short), public :: id

diversion id

character(len=100), public :: name

diversion name

type(Diversion), public, POINTER :: next

dynamic list

integer(kind=short), public :: r

cell row i

integer(kind=short), public :: rout

cell row where off-stream pool outflow is discharged

type(Table), public :: weir

stream-diverted flow relationship

integer(kind=short), public :: weirDOY(365)

weir function used daily

real(kind=float), public :: xout

x coordinate where diverted flow is discharged

type(Coordinate), public :: xyz

easting, northing and elevation in real world

real(kind=float), public :: yout

y coordinate where diverted flow is discharged


Source Code

TYPE Diversion
	INTEGER (KIND = short)  :: id !!diversion id
	CHARACTER (LEN = 100)   :: name !!diversion name
    TYPE (Coordinate)       :: xyz !!easting, northing and elevation in real world
    REAL (KIND = float)     :: xout !! x coordinate where diverted flow is discharged
    REAL (KIND = float)     :: yout !! y coordinate where diverted flow is discharged
	INTEGER (KIND = short)  :: r  !!cell row i
	INTEGER (KIND = short)  :: c  !!cell column j
    INTEGER (KIND = short)  :: rout  !!cell row  where off-stream pool outflow is discharged
	INTEGER (KIND = short)  :: cout  !!cell column where off-stream pool outflow is discharged
    INTEGER (KIND = short)  :: fileunitOut !!file unit for writing results
	REAL (KIND = float)     :: Qout !! discharge flowing in the natural river downstream diversion (m3/s)
	REAL (KIND = float)     :: eFlow (365) !! daily environmental flow [m3/s]
	TYPE (Table)            :: weir !! stream-diverted flow relationship
    INTEGER (KIND = short)  :: weirDOY (365) !!weir function used daily
    REAL (KIND = float)     :: channelLenght !! diversion channel lenght (m)
    REAL (KIND = float)     :: channelSlope !! diversion channel slope (m/m)
    REAL (KIND = float)     :: channelManning !! diversion channel Manning roughness [s m^-1/3]
    REAL (KIND = float)     :: channelWidth !! diversion channel bottom width (m)
    REAL (KIND = float)     :: channelBankSlope !! diversion channel section bank slope (deg)
    REAL (KIND = float)     :: QinChannel !! Input discharge into diversion at time t+dt (m3/s)
    REAL (KIND = float)     :: QoutChannel !! Output discharge into diversion at time t+dt (m3/s)
    REAL (KIND = float)     :: PinChannel !! Input discharge into diversion at time t (m3/s)
    REAL (KIND = float)     :: PoutChannel !! Output discharge into diversion at time t (m3/s)
    TYPE (Diversion), POINTER  :: next  !!dynamic list
END TYPE Diversion